This invention relates generally to the use of a serial bus as a means of packet communication in a computer system. More particularly, the invention provides a method and apparatus for using a serial bus, such as an IEEE 1394 bus, to transmit data packets using a connection-oriented interface.
The use of serial buses in computer systems is well known. A recently developed serial bus, referred to as the IEEE 1394 bus, is based on the internationally adopted ISO/IEC 13213 (ANSI/IEE 1212) CSR Architecture Specification and the IEEE 1394-1995 Serial Bus Specification, both of which are publicly available documents. A typical system conforming to the IEEE 1394 standard includes a plurality of nodes that are interconnected via point-to-point links, such as cables, that each connect a single node of the serial bus to another node of the serial bus. The nodes are addressable entities that can be independently reset and identified. The 1394 bus provides both asynchronous and isochronous (time-guaranteed delivery) capabilities.
Various implementations of the IEEE 1394 bus in computer systems typically include layered hardware and software protocols. The Internet Engineering Task Force (IETF) Request for Comments (RFC) 2734[D1] describes a scheme for using the 1394 bus to transmit Internet Protocol datagrams according to IPv4. The RFC is specific to the IPv4 protocol (described in IETF RFC 791) and does not contemplate use of the isochronous facilities of the 1394 bus. There is also no provision for streaming raw data to 1394 devices at the application level, a capability that would be useful in 1394-based systems. Moreover, there is no provision for providing connection-oriented communication between nodes on the serial bus.
When the evolving IPv6 protocol (described in IETF RFC 2460) standard is completed and implemented, interfaces between the upper level protocols and the 1394 bus will need to be reworked to adapt to that standard. Legacy applications would need to be upgraded to the IPv6 standard, thus incurring expense to change and debug software. It would be advantageous if a system could implement the IPv6 protocol in a manner that co-exists with the IPv4 protocol, so that legacy applications could continue to use the older IPv4 while newer applications could make use of IPv6. Moreover, it would be advantageous if different applications within a bus node could communicate over the 1394 bus using both connectionless and connection-oriented facilities.
The invention provides a method and apparatus for treating a serial bus, such as the IEEE 1394 bus, as a connection-oriented network. In one embodiment, an application programming interface (API) permits different protocols and applications to connect to the 1394 bus and to make use of various 1394 features, such as isochronous packet transmission, without knowledge of hardware-specific idiosyncrasies. More generally, the invention allows network clients that conventionally use network-oriented protocols to communicate over a non-networked medium, such as a serial bus.
According to one aspect of the invention, a call is made to set up a connection (a xe2x80x9cvirtual circuitxe2x80x9d) over the serial bus, and, thereafter, a connection xe2x80x9chandlexe2x80x9d is used to communicate over the bus using the connection. Different types of connections can be provided, including a node-specific connection; a channel-specific connection; and a receiving connection (e.g., for incoming data). In one embodiment, a programming interface hides details ofthe connection set-up, and includes packet fragmentation and reassembly functions. Because multiple protocols can share common communication facilities, code re-use is maximized.
According to another aspect of the invention, an application programming interface (API) is provided that permits certain applications to communicate over the serial bus in a connectionless packet-oriented manner, while other applications can simultaneously communicate over the same bus using a connection-oriented networking model. Other details and advantages will become apparent through the following detailed description, the figures, and the claims.